package com.cmc.cloud.cmclink.doc.strategy.impl;

import com.cmc.cloud.cmclink.doc.entity.BlnoDO;
import com.cmc.cloud.cmclink.doc.enums.PrintStatusEnum;
import com.cmc.cloud.cmclink.doc.strategy.DocumentObjectivesStrategy;

/**
 * 纸质策略
 * @author lyp
 * @date 2025/8/19
 */
public class PrintnoBlStrategy implements DocumentObjectivesStrategy {
    @Override
    public String getDocumentObjectives(BlnoDO blnoDO) {
        // 判断是否为海南主体且签发类型是海运单
        if (PrintStatusEnum.HN.getValue().equals(blnoDO.getBlEntity()) && PrintStatusEnum.W.getValue().equals(blnoDO.getSignType())) {
            return "HN-Original";
        }
        if (PrintStatusEnum.HN.getValue().equals(blnoDO.getBlEntity()) && PrintStatusEnum.B.getValue().equals(blnoDO.getSignType())) {
            return "HN-Original";
        }
        if (PrintStatusEnum.HW.getValue().equals(blnoDO.getBlEntity()) && PrintStatusEnum.W.getValue().equals(blnoDO.getSignType())) {
            return "HW-Original";
        }
        if (PrintStatusEnum.HW.getValue().equals(blnoDO.getBlEntity()) && PrintStatusEnum.B.getValue().equals(blnoDO.getSignType())) {
            return "HW-Original";
        }
        if (PrintStatusEnum.SNL.getValue().equals(blnoDO.getBlEntity()) && PrintStatusEnum.W.getValue().equals(blnoDO.getSignType())) {
            return "SNL-Original";
        }
        if (PrintStatusEnum.SNL.getValue().equals(blnoDO.getBlEntity()) && PrintStatusEnum.B.getValue().equals(blnoDO.getSignType())) {
            return "SNL-ORIGINAL";
        }
        return "";
    }

    @Override
    public PrintStatusEnum getSupportStatus() {
        return PrintStatusEnum.PRINTBL;
    }
}